package dancereal;

public class J19_CallBy {
    /* call by value     v s    call by reference
	* 값 이동시키기 swap
	* a = 3, b = 5 --> swap(3,5) -- > a = 5, b = 3
	*/
	
	public static void main(String[] args) {
	
	int a = 3; int b = 5; // 기본자료형
	int[] aa = {3};       // 참조자료형
	int[] bb = {5};
	System.out.println("스왑 호출 전  a : " + a + "  b : " + b);
	System.out.println("스왑 호출 전  aa : " + aa[0] + "  bb : " + bb[0]);
	
	swap(a,b);   //기본 자료형      
	swap(aa,bb); //참조 자료형        
	System.out.println(a + "  ,  " + aa + "  ,  " + aa[0]);
	swap(aa[0], bb[0]);
	System.out.println(aa[0] + " , " + bb[0]);
	
	System.out.println("스왑 호출 후  a : " + a + "  b : " + b);
	System.out.println("스왑 호출 후  aa : " + aa[0] + "  bb : " + bb[0]);
		
	}// main
	
static void swap(int x, int y){
	// x = y; y = x;
	int tmp = x;
	x = y;
	y = tmp;
	System.out.println(" swap 실행중  a : " + x + ", b : " + y);
}
static void swap(int[] x, int[] y){
	int tmp = x[0];
	x[0] = y[0];
	y[0] = tmp;
}
} //j19_callby

